#include <stdio.h>

void reverse(char *ch)
{
	if(*ch == '\0')
	{
		return;
	}

	reverse(ch+1);

	printf("%c ", *ch);
}

int main(int argc, char const *argv[])
{
	//递归函数 是自己调自己
	//递归函数在调用的时候虽然看上自己名称一样,但是和调用普通函数是一样的
	//调用函数都是要压栈的,有自己内存四区,如果递归函数没有出口,死循环的调用,会不断的压栈最终导致栈内存用完会溢出
	//所以递归函数必须要有出口
	//递归的间接调用 f1 -> f2 -> f1 这种也属于递归调用
	
	char buf[] = "abcdefg";
	
	reverse(buf);
	return 0;
}
